Amazon EMRジョブでPythonのバージョンを指定する
Amazon EMR ジョブを PySpark や Hadoop Streaming などを使い Python で実装するケースがあります。
さて、ここで気になるのは Python のどのバージョンで実行されるのかという点です。
2018/03/16 時点で最新の Amazon EMR 5.12.0(Hadoop : 2.8.3) で確認した結果を共有します。
Amazon EMR 5.12.0 でインストールされている Python
Amazon EMR 5.12.0 では
- Python 2.6
- Python 2.7
- Python 3.4
の3種類の Python がインストールされています
バージョンに対応する Python をどのように呼び出せばよいのかまとめたのが、次の表です。
| バージョン | 呼び出し方 | | --- | --- | | Python 2.6 | python2 python26 python2.6 | | Python 2.7 | python python27 python2.7 | | Python 3.4 | python3 python34 python3.4 |
/usr/bin/python
は Python 2.7 なのに対して /usr/bin/python2
が Python 2.6 なのは若干はまりポイントです。Python 3 との違いを明示的にするために、気を利かせて python
を python2
に書き換えたりすると、インタープリターそのものも変わってしまいます。お気をつけ下さい。
なお、Amazon EMR 4.6 以降であれば、 /usr/bin/python3
で Python 3.4 を呼び出し可能です。
Hadoop Streaming/PySpark などの Python 使いの参考になれば幸いです。
備考
/usr/bin/
以下のインストールされた Python 系プログラムが以下です
python python2 python26 python2.6 python27 python2.7 python2.7-config python3 python34 python3.4
参考
- https://hadoop.apache.org/docs/r1.2.1/streaming.html
- https://aws.amazon.com/premiumsupport/knowledge-center/emr-pyspark-python-3x/
- https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-whatsnew-history.html